libobs_wrapper\display\window_manager/
misc_trait.rs1use crate::display::window_manager::MiscDisplayTrait;
2use crate::display::ObsDisplayRef;
3use crate::run_with_obs;
4use crate::utils::ObsError;
5
6impl MiscDisplayTrait for ObsDisplayRef {
7 fn is_enabled(&self) -> Result<bool, ObsError> {
8 let display_ptr = self.display.clone();
9 run_with_obs!(self.runtime, (display_ptr), move || unsafe {
10 libobs::obs_display_enabled(display_ptr)
11 })
12 }
13
14 fn set_enabled(&self, enabled: bool) -> Result<(), ObsError> {
15 let display_ptr = self.display.clone();
16
17 run_with_obs!(self.runtime, (display_ptr), move || unsafe {
18 libobs::obs_display_set_enabled(display_ptr, enabled)
19 })
20 }
21
22 fn set_background_color(&self, r: u8, g: u8, b: u8) -> Result<(), ObsError> {
23 let color: u32 = ((r as u32) << 16) | ((g as u32) << 8) | (b as u32);
24 let display_ptr = self.display.clone();
25
26 run_with_obs!(self.runtime, (display_ptr), move || unsafe {
27 libobs::obs_display_set_background_color(display_ptr, color)
28 })
29 }
30}